#!/bin/bash

function validarUser
{
valid=`grep $1 ${DATAMAE}/encuestadores.mae`
if [ -n "$valid" ]
then
	return 0
else
	return 1
fi
}

function leerRangoFechas
{
valid=`grep $1 ${DATAMAE}/encuestadores.mae`
desde=`echo $valid | sed 's/^.*,\([0-9].*\),\([0-9].*\)/\1/'`
hasta=`echo $valid | sed 's/^.*,\([0-9].*\),\([0-9].*\)/\2/'`
}

function  esFecha
{
x=`echo $1 | grep '^[0-9]\{8\}$'`

if [ $? -eq 0 ]
then
ano=`echo $1 | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1/'`
mes=`echo $1 | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\2/'`
dia=`echo $1 | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\3/'`

	if [ $mes -le 0 -o $mes -gt 12 ]
	then
	return 1
	else
	
# Cantidad de dias del mes
	case $mes in
	    01) dias=31;;
	    02) dias=28 ;;
	    03) dias=31 ;;
	    04) dias=30 ;;
	    05) dias=31 ;;
	    06) dias=30 ;;
	    07) dias=31 ;;
	    08) dias=31 ;;
	    09) dias=30 ;;
	    10) dias=31 ;;
	    11) dias=30 ;;
	    12) dias=31 ;;
	    *) dias=-1;;
	    esac
	
	if [ $mes -eq 2 ]; 
	then
	if [ $((ano % 4)) -ne 0 ] ; then
	   : 
	elif [ $((ano % 400)) -eq 0 ] ; then
	   dias=29
	elif [ $((ano % 100)) -eq 0 ] ; then
	   : 
	else
	   dias=29
	fi
	fi
	
	if [ $dia -le 0 -o $dia -gt $dias ]
	then
  	return 1
	else
	return 0
	fi

	fi
else
return 1
fi
}

function validarFecha 
{

fecha_actual=`date -I`
fecha_actual_mod=`echo $fecha_actual | sed 's/\-//g'`


if [ $1 -le $fecha_actual_mod ]
then
	if [ $1 -ge $desde ]
	then
		if [ $1 -le $hasta ]
		then
		return 0
		else
		return 1
		fi
	else
	return 1
	fi
else 
return 1
fi
}



#Cuerpo Principal/ Ciclo infinito

while [ 1 ]
do 

archivos=`ls $ARRIDIR`

if [ -n "$archivos" ]
then
	for nombre in $archivos	
	do
	user_id=`echo $nombre | sed 's/^\(.*\)\..*$/\1/'`
	fecha=`echo $nombre | sed 's/^.*\.\([0-9].*\)$/\1/'`
	
		validarUser "$user_id,"
		
		if [ $? -eq 0 ]
		then	
			esFecha $fecha

			if [ $? -eq 0 ]
			then
			leerRangoFechas $user_id
			validarFecha $fecha

			if [ $? -eq 0 ]
			then
			${LIBDIR}/moverC.sh ${ARRIDIR}/${nombre} ${GRUPO}/preparados "detectarC"
			${LIBDIR}/loguearC.sh "detectarC" "I" "El archivo ${ARRIDIR}/${nombre} será movido a la carpeta de preparados." 
			else
			${LIBDIR}/moverC.sh ${ARRIDIR}/${nombre} ${GRUPO}/rechazados "detectarC"
			${LIBDIR}/loguearC.sh "detectarC" "I" "El archivo ${ARRIDIR}/${nombre} será movido a la carpeta de rechzados por poseer una fecha invalida."
			fi
			else
			${LIBDIR}/moverC.sh ${ARRIDIR}/${nombre} ${GRUPO}/rechazados "detectarC"
			${LIBDIR}/loguearC.sh "detectarC" "I" "El archivo ${ARRIDIR}/${nombre} será movido a la carpeta de rechzados por poseer un formato de fecha invalido."
			
			fi
		else	
			echo "user invalido"
			${LIBDIR}/moverC.sh ${ARRIDIR}/${nombre} ${GRUPO}/rechazados "detectarC"
			${LIBDIR}/loguearC.sh "detectarC" "I" "El archivo ${ARRIDIR}/${nombre} será movido a la carpeta de rechzados por poseer un user de encuestador invalido."
		fi	

	done


fi

preparados=`ls ${GRUPO}/preparados`

if [ -n "$preparados" ]
then
pid=`pgrep sumarC.sh`
	if [ $? -eq 0 ]
	then
		echo "Error: sumarC ya se está ejecutando bajo pid=${pid}."
	else
		${BINDIR}/sumarC.sh &
		pid=`pgrep 'sumarC.sh'`
		echo "Se inicia la ejecución de sumarC bajo el pid=${pid}."
	fi
fi


sleep 1s
done

